#!/usr/bin/env node

// Node CLI 应用入口文件必须要有这样的文件头
// 如果是Linxu 或者是macOS系统下还需要修改此文件的读写权限为 755
// 具体就是通过chmod 755 lib.js实现修改

console.log('欢迎来到lib.js');

/*
* 脚手架的工作过程:
* 1、通过命令行交互询问用户问题
* 2、根据用户回答的结果生成文件
*/

const fs = require('fs');
const path = require('path');
const inquirer = require('inquirer'); // 命令行交互插件
const ejs = require('ejs'); // 模板引擎

inquirer.promot([
  {
    type: 'input',
    name: 'name',
    message: 'Project name ?'
  }
])
.then(anwsers => {
  // console.log(anwsers,'this is anwsers');
  // 根据用户回答的结果生成文件

  // 拿到模板文件
  const tmplDir = path.join(__dirname, 'templates');

  // 目标目录
  const destDir = process.cwd();

  // 将模板下的文件全部转换到目标目录
  fs.readdir(tmplDir, (err, files) => {
      if (err) throw err;
      files.forEach(file => {
          //console.log(file, 'this is file');
          // file => 文件相对于 templates 目录的相对路径
          // 通过模板引擎渲染文件
          ejs.renderFile(path.join(tmplDir, file), answers, (err, result) => {
              if (err) throw err;

              //console.log(result, 'this is result');

              // 将结果写入目标文件
              fs.writeFileSync(path.join(destDir, file), result);
          });
      });
  })
})
